//引入 axios
import axios from "axios";
import METHOD from "./methods";
import Loading from '../../components/loading/index'
const BASEURL = "https://api.it120.cc/small4";
//创建 axios 配置实例
/**
 * 配置对象
 */
const axiosInstance = axios.create({
  baseURL: BASEURL,//默认会拼接到请求路径前面
  timeout: 10000
});
let loading = null;
//请求发送前，弹出loading组件 
// 添加请求拦截器
axiosInstance.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  // 弹起loading
  loading = Loading.serve()
  return config;
}, function (error) {
  // 对请求错误做些什么
  //提示用户错误信息
  return Promise.reject(error);
});
//请求结束后，收起loading组件
// 添加响应拦截器
axiosInstance.interceptors.response.use(function (response) {
  // 对响应数据做点什么
   setTimeout(() => {
    loading.close();
 },2000);
  return response;
}, function (error) {
  // 对响应错误做点什么
  loading.close();
  return Promise.reject(error);
});

//请求方法
/**
 * @param {*} method 
 * @param {*} url 
 * @param {*} params 
 */
export function request(method, url, params) {
  switch (method) {
    case METHOD.GET:
      return GET(url, params);
    case METHOD.POST:
      return POST(url, params)
  }
}
//请求方式
function GET(url, params) {
  return axiosInstance.get(url, params);
}
function POST(url, params) {
  return axiosInstance.post(url, params);
}